package com.guaoran.interview.in2018.basictypes;

import java.math.BigDecimal;

/**
 * @Author gucheng
 * @Description
 *  BigDecimal
 *      解决 double 相乘的出现的精度失准的问题
 * 2019-04-01 15:20
 */
public class BigDecimalDemo {
    public static void main(String[] args) {
        // double 值 直接相乘会造成精度失准
        double d = 538.8;
        System.out.println(d*100);

        // BigDecimal 直接 传入double 值也会造成精度失准
        BigDecimal decimal = new BigDecimal(d);
        BigDecimal multiply = decimal.multiply(new BigDecimal(100.00));
        System.out.println(multiply.doubleValue());

        // 采用将 double 值转换成 string 后相乘是没有问题的
        BigDecimal bd = new BigDecimal(Double.toString(d));
        BigDecimal multiply1 = bd.multiply(new BigDecimal(100.00));
        System.out.println(multiply1.doubleValue());




    }
}
